(function () {
  $('#showReg').on('click', function () {
    $('.reg-form').show()
    $('.login-form').hide()
  })

  $('#showLogin').on('click', function () {
    $('.reg-form').hide()
    $('.login-form').show()
  })


  let form = layui.form  //声明form变量
  let layer = layui.layer //规范写法
  //自定义规则

  form.verify({
    username: function (value, item) { //value：表单的值、item：表单的DOM对象
      if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) {
        return '用户名不能有特殊字符';
      }
      if (/(^\_)|(\__)|(\_+$)/.test(value)) {
        return '用户名首尾不能出现下划线\'_\'';
      }
      if (/^\d+\d+\d$/.test(value)) {
        return '用户名不能全为数字';
      }

      //如果不想自动弹出默认提示框，可以直接返回 true，这时你可以通过其他任意方式提示（v2.5.7 新增）
      if (value === '傻逼') { //局限性较大
        alert('用户名不能为敏感词');
        return true;
      }
    }

    //我们既支持上述函数式的方式，也支持下述数组的形式
    //数组的两个值分别代表：[正则匹配、匹配不符时的提示文字]
    , pass: [
      /^[\S]{6,12}$/
      , '密码必须6到12位，且不能出现空格'
    ],
    repass: function (value, item) { //value表单的值，item表单dom元素
      // console.log(value)
      const passInt = $('#pass').val()
      if (passInt !== value) {
        return '两次密码不一样'
      }
    }
  });


  //注册数据
  $('.reg-form').on('submit', function (e) {
    e.preventDefault()

    let data = $(this).serialize()  //这个方法必须要有name属性
    console.log(data);
    axios.post('/api/reguser', data).then(
      // res => console.log(res)
      ({ data: { status, message } }) => {
        if (status !== 0) {
          layer.msg(message, { icon: 9 })
        }
        layer.msg(message, {
          icon: 6,
          time: 1000 //2秒关闭（如果不配置，默认是3秒）
        }, function () {
          $('#showLogin').click()
        })
      }
    )
  })


  //登录事件
  $('.login-form').on('submit', function (e) {
    e.preventDefault()
    let data = $(this).serialize()
    console.log(data);
    axios.post('/api/login', data).then(
      // res => console.log(res)
      ({ data: { status, message, token } }) => {
        if (status !== 0) {
          return layer.msg(message, { icon: 9 })
        }

        //当登录成功的时候 ，服务器会响应客户端一个token信息（身份/令牌）
        //本地存储起来 
        //访问/my文件的时候 ，需要token //有时效性，一般是2小时

        localStorage.setItem('token', token)

        layer.msg('登录成功，即将跳转', {
          icon: 6,
          time: 1000 //1秒关闭（如果不配置，默认是3秒）
        }, function () {
          location.href = '/index.html'
        })
      }
    )
  })


})()